package cn.fly.blog.common.constant;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.AllArgsConstructor;
import lombok.Getter;


/**
 * 状态定义枚举类
 */
@Getter
@AllArgsConstructor
public enum DStatus {
    /**
     * 删除状态
     */
    DELETE(0),
    /**
     * 基本状态
     */
    NORMAL(1),
    /**
     * 冻结 中间态，未删除但通常不显示
     */
    LOCK(2),
    /**
     * 置顶 突出状态
     */
    STICK(3),
    ;

    @EnumValue
    @JsonValue
    int code;

    /**
     * 为了使这方法生效，以上定义状态时 code需要与顺序一一对应
     * @param code
     * @return
     */
    @JsonCreator
    public static DStatus build(int code){
        return values()[code];
    }
}
